

// 小程序端 获取用户所在的经度 、 维度
export const getMpAddress = function() {
	return new Promise((resolve, reject) => {
		amapwx.getRegeo({
			success: (res) => {
				resolve(res[0])
			},
			fail: (err) => {
				reject(err)
			}
		})
	})
}


// 小程序端 高德地图获取用户地理位置
export const getMpLocation = function() {
	return new Promise((resolve, reject) => {
		// 高德地图aip
		amapwx.getRegeo({
			success: (res) => {
				resolve(res)
			},
			fail: (res) => {
				reject(res)
			}
		})
	})
}

// 小程序端根据经纬度获取用户位置
export const getMpRegeo = function(lat, lon) {
	return new Promise((resolve, reject) => {
		uni.request({
			url:'https://restapi.amap.com/v3/geocode/regeo',
			data:{
		　　　　key: config.amapKey,
		　　　　location: lon + "," + lat,
		　　　　extensions: "all",
		　　　　s: "rsx",
		　　　　sdkversion: "sdkversion",
		　　　　logversion: "logversion"
		　　},
			success: res => {
			　　resolve(res)
			},
			fail: err => {
				reject(err)
			}
		})
	})
}

// 经纬度转换成三角函数中度分表形式。
function rad(d) {
	return d * Math.PI / 180.0;
}

// 获取两点之间的距离
export const getDistance = function(targetLatitude, targetLongitude) {
	return new Promise((resolve, reject) => {
		uni.getLocation({
			type: 'wgs84',
			success: (e) => {
				// 自身的经度、纬度
				let longitude = e.longitude	
				let latitude = e.latitude
				// 这一段copy的，懒得看啥意思了，
				let radLat1 = rad(latitude);
				let radLat2 = rad(targetLatitude);
				let a = radLat1 - radLat2;
				let b = rad(longitude) - rad(targetLongitude);
				let s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) +
					Math.cos(radLat1) * Math.cos(radLat2) * Math.pow(Math.sin(b / 2), 2)));
				s = s * 6378.137; // EARTH_RADIUS;
				s = Math.round(s * 10000) / 10000; //输出为公里
				
				let distance = s;
				let distance_str = "";
				
				if (parseInt(distance) >= 1) {
					distance_str = distance.toFixed(1) + "km";
				} else {
					distance_str = (distance * 1000).toFixed(1) + "m";
				}
				// console.info('距离是', s);
				// console.info('距离是', distance_str);
				resolve(distance_str)
			}
		})
	})
}
